package models.games;

import core.User;
import core.database.DataBaseManager;

public abstract class Game {

	protected User user;

	protected int score;

	protected int level;

	// protected final int idArea = Area.MEMORIA;

	public Game(User user) {
		this.user = user;
	}

	public abstract int getGameKey();

	public void setScore(int s) {
		score = s;
	}

	public int getScore() {
		return score;
	}

	public void setLevel(int liv) {
		level = liv;
	}

	public int getLevel() {
		return level;
	}

	public void incrementLevel() {
		level++;
	}

	public User getCurrentUser() {
		return user;
	}

	public void setCurrentUser(User currentUser) {
		user = currentUser;

	}

	public void addGameToDatabase() {
		try {
			System.out.println("ADD GAME " + user + " SCORE " + score);
			DataBaseManager.addGame(user, this, score);
		} catch (NullPointerException e) {
			e.printStackTrace();
		}
	}

	protected int correctCount;
	// /**
	// * Incrementa il contatore delle risposte corrette. Ogni 2 invocazioni di
	// questo metodo viene invocato il metodo incrementExperience di user che
	// aumenta i punti esperienza
	// * associati allo utente corrente. Questo metodo restituisce un boolean
	// che è true se l'esperienza aggiunta ha fatto incrementare il livello,
	// false altrimenti. Se il livello
	// * è incrementato il contatore delle risposte corrette viene azzerato.
	// */
	// public void correctAnswer(){
	// correctCount++;
	// boolean incrementLevel = false;
	// if(correctCount %2 == 0){
	// incrementLevel = user.incrementExperience();
	// }
	// if(incrementLevel) correctCount = 0;
	// }

}
